package com.zyd.blog.personal.service;

import com.github.pagehelper.PageInfo;
import com.zyd.blog.business.entity.User;
import com.zyd.blog.business.entity.UserInfo;
import com.zyd.blog.business.vo.UserConditionVO;
import com.zyd.blog.business.vo.UserInfoConditionVO;
import com.zyd.blog.persistence.beans.TbUserInfo;

import java.util.List;
import java.util.Map;

/**
 * 用户详细信息业务逻辑层接口展示
 * @author mfy
 */
public interface UserInfoService {

    /**
     * 是否存在用户信息查询
     * @param userId    用户id
     * @return  存在结果
     */
    Boolean isHaveUserInfo(Long userId);

    /**
     * 得到用户详细信息
     * @param userId    用户id
     * @return  用户信息列表
     */
    List<Map<String,Object>> getUserInfo(Long userId);

    /**
     * 得到单个用户详细信息
     * @param userId    用户id
     * @return  单个用户详细信息
     */
    Map<String,Object> getUnitUserInfo(Long userId);

    /**
     * 得到单个用户的简单信息
     * @param userId    用户id
     * @return  用户简单信息展示
     */
    Map<String,Object> getUserSimpleInfo(Long userId);

    /**
     * 增加用户详细信息
     * @param map   用户详细信息
     * @return  操作结果
     */
    Boolean addUserInfo(Map<String,Object> map);

    /**
     * 更新用户详细信息
     * @param map   用户详细信息
     * @return  操作结果
     */
    Boolean updateUserInfo(Map<String,Object> map);

    /**
     * 分页查询普通用户
     * @param vo 查询信息
     *
     * @return 用户列表
     */
    PageInfo<UserInfo> findPageBreakByCondition(UserInfoConditionVO vo);

}
